﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraBars;
using DevExpress.XtraEditors;
//using QuanLyThuPhiCSP.Utility_Classes;
using System.Globalization;
using System.Threading;
using System.Configuration;
using INHOADON_TAMVAN.Chuc_Nang;


namespace INHOADON_TAMVAN
{
    public partial class FrmMain : DevExpress.XtraBars.Ribbon.RibbonForm
    {
        // Form Đổi mật khẩu
        FrmDoiMatKhau frmDoiMatKhauObj;

        // Form Quản lý Người dùng
        FrmPhanQuyen frmPhanQuyenObj;

        // Form Quản lý Báo cáo tổng hợp hóa đơn theo ngày
        FrmBaoCaoHoaDonTheoNgay frmBaoCaoHoaDonTheoNgayObj;

        //From Quản lý Hóa đơn giá trị gia tăng
        frmHoaDon frmHoaDonObj;

        //From quản lý hàng hóa
        frmSanPham frmSanPhamObj;
       
        DialogResult result;

        DataClasses1DataContext dc;

       
        public FrmMain()
        {
            InitializeComponent();

         

        }

        // Load form
        private void frmMain_Load(object sender, EventArgs e)
        {

            Thread.CurrentThread.CurrentCulture = new CultureInfo("en-GB");

            Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-GB");

            xtraUserControl11.dangNhapThanhCong += new DangNhapEventHandler(HandleLogin);

            DevExpress.Skins.SkinManager.EnableFormSkins();
            DevExpress.UserSkins.BonusSkins.Register();
            DevExpress.UserSkins.OfficeSkins.Register();

            
        }

        // Đổi mật khẩu
        private void btDoiMatKhau_ItemClick(object sender, ItemClickEventArgs e)
        {
            xtraUserControl11.Visible = false;

            if (frmDoiMatKhauObj != null)
            {
                if (frmDoiMatKhauObj.IsDisposed)
                {
                    frmDoiMatKhauObj = new FrmDoiMatKhau();
                }
                else
                {
                    frmDoiMatKhauObj.Activate();
                }
            }
            else
            {
                frmDoiMatKhauObj = new FrmDoiMatKhau();
            }
            frmDoiMatKhauObj.Show();
        }

        // Quản lý Người dùng
        private void btNguoiDung_ItemClick(object sender, ItemClickEventArgs e)
        {
            xtraUserControl11.Visible = false;

            if (frmPhanQuyenObj != null)
            {
                if (frmPhanQuyenObj.IsDisposed)
                {
                    frmPhanQuyenObj = new FrmPhanQuyen();
                }
                else
                {
                    frmPhanQuyenObj.Activate();
                }
            }
            else
            {
                frmPhanQuyenObj = new FrmPhanQuyen();
            }

            frmPhanQuyenObj.MdiParent = this;
            frmPhanQuyenObj.Show();
        }

        // Đăng xuất
        private void btDangXuat_ItemClick(object sender, ItemClickEventArgs e)
        {
            result = XtraMessageBox.Show("Bạn có muốn đăng xuất khỏi hệ thống?", "Đăng xuất", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);

            if (result == System.Windows.Forms.DialogResult.Yes)
            {
                // Form Đổi mật khẩu
                if (frmDoiMatKhauObj != null)
                {
                    frmDoiMatKhauObj.Close();
                }

                // Form Quản lý Người dùng
                if (frmPhanQuyenObj != null)
                {
                    frmPhanQuyenObj.Close();
                }

            

                xtraUserControl11.Visible = true;

                PhanQuyenAdmin(false);
            }
            else if (result == System.Windows.Forms.DialogResult.Cancel)
            {
            
            }
        }

        // Quản lý Quận Huyện
        private void btQuanHuyen_ItemClick(object sender, ItemClickEventArgs e)
        {
            xtraUserControl11.Visible = false;

         
        }

        // Quản lý Xã Phường
        private void btXaPhuong_ItemClick(object sender, ItemClickEventArgs e)
        {
            xtraUserControl11.Visible = false;

         
        }

        // Quản lý Khu vực
        private void btKhuVuc_ItemClick(object sender, ItemClickEventArgs e)
        {
            xtraUserControl11.Visible = false;

       
        }

        // Quản lý Tuyến đường
        private void btTuyenDuong_ItemClick(object sender, ItemClickEventArgs e)
        {
            xtraUserControl11.Visible = false;

         
        }

        // Quản lý Nhân viên
        private void btNhanVien_ItemClick(object sender, ItemClickEventArgs e)
        {
            xtraUserControl11.Visible = false;

           

        }

        // Quản lý Loại Khách hàng
        private void btLoaiKH_ItemClick(object sender, ItemClickEventArgs e)
        {
            xtraUserControl11.Visible = false;

          

        }

        // Quản lý Khách hàng
        private void btKH_ItemClick(object sender, ItemClickEventArgs e)
        {
            xtraUserControl11.Visible = false;

           
        }

        // Quản lý mẫu hóa đơn
        private void btMauHD_ItemClick(object sender, ItemClickEventArgs e)
        {
            xtraUserControl11.Visible = false;

          
        }

 
        private void btCapPhat_ItemClick(object sender, ItemClickEventArgs e)
        {
            xtraUserControl11.Visible = false;

          
        }

        // Quản lý cập nhật biến động thu phí
        private void btCapNhatBienDong_ItemClick(object sender, ItemClickEventArgs e)
        {
            xtraUserControl11.Visible = false;

        }

        // Báo cáo danh sách khách hàng
        private void btBaoCaoDanhSachKhachHang_ItemClick(object sender, ItemClickEventArgs e)
        {
            xtraUserControl11.Visible = false;

          
        }

        // Báo cáo doanh bộ theo nhân viên
        private void btBaoCaoDoanhBo_ItemClick(object sender, ItemClickEventArgs e)
        {
            xtraUserControl11.Visible = false;

        }

        // Hàm xử lý sự kiện đăng nhập thành công ở user control đăng nhập
        private void HandleLogin(object sender, Boolean e)
        {
            XtraMessageBox.Show("Đăng nhập thành công.", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
            DataClasses1DataContext dc = new DataClasses1DataContext(SystemInfo.pub_ConnString);
            

            //if (SystemInfo.pub_QuyenSuDung == "Cán bộ nhập liệu")
            //{
            //    PhanQuyenNhapLieu(true);
            //}
            //else if (SystemInfo.pub_QuyenSuDung == "Admin")
            //{
            //    PhanQuyenAdmin(true);
            //}

            PhanQuyenAdmin(true);
        }

        // Phân quyền cho cán bộ nhập liệu
        // Thực hiện các quyền chức năng và báo cáo
        private void PhanQuyenNhapLieu(Boolean duocCap)
        {
            btDoiMatKhau.Enabled = duocCap;
            btDangXuat.Enabled = duocCap;

            // Nhập vé
            //btThuPhi.Enabled = duocCap;

            // Cấp phát vé
            //btCapPhat.Enabled = duocCap;

            // Sử dụng vé
            //btSuDungVe.Enabled = duocCap;

            // Cập nhật biến động thu phí
            btCapNhatBienDong.Enabled = duocCap;

            // Nút tìm kiếm
            btTimKiem.Enabled = duocCap;

            btDoiChieu.Enabled = duocCap;

            // Báo cáo danh sách khách hàng theo nhân viên
            btBaoCaoDanhSachKhachHang.Enabled = duocCap;

            // Báo cáo danh sách khách hàng không đóng phí theo Quyết định 02/2011/QĐ-UBND
            btDanhSachKhachHangKhongDongPhiTheoQuyetDinh02.Enabled = duocCap;

            // Báo cáo doanh bộ theo nhân viên
            btBaoCaoDoanhBo.Enabled = duocCap;

            // Báo cáo tình hình sử dụng hóa đơn
            btBaoCaoTinhHinhSuDungVe.Enabled = duocCap;

            // Báo cáo công tác thu phí vệ sinh theo tháng
            btBaoCaoCongTacThuPhiVeSinhTheoThang.Enabled = duocCap;

            // Báo cáo doanh thu
            btDoanhThu.Enabled = duocCap;

            // Thống kê tình hình sử dụng vé
            barButtonItem1.Enabled = duocCap;

            btDSKHBienDong.Enabled = duocCap;

            barButtonItem2.Enabled = duocCap;
        }

        // Phân quyền cho admin 
        private void PhanQuyenAdmin(Boolean duocCap)
        {
            PhanQuyenNhapLieu(duocCap);

            btnBaoCaoTongHop.Enabled = duocCap;

            btNguoiDung.Enabled = duocCap;

            btSaoLuu.Enabled = duocCap;

            btPhucHoi.Enabled = duocCap;

            btnHoadonGTGT.Enabled = duocCap;

            btnDanhMucSanPham.Enabled = duocCap;

            btnKhachHang.Enabled = duocCap;

            // Danh mục Quận Huyện
            //btQuanHuyen.Enabled = duocCap;

            // Danh mục Phường Xã
            //btPhuongXa.Enabled = duocCap;

            // Danh mục Khu vực
            //btKhuVuc.Enabled = duocCap;

            // Danh mục Tuyến đường
           //btTuyenDuong.Enabled = duocCap;

            // Danh mục Loại Khách hàng
            //btLoaiKH.Enabled = duocCap;

            // Danh mục Khách hàng
            //btKH.Enabled = duocCap;

            // Danh mục mẫu hóa đơn
            //btMauHD.Enabled = duocCap;

            // Quản lý người dùng
            //btNguoiDung.Enabled = duocCap;

            // Quản lý nhân viên
            //btNhanVien.Enabled = duocCap;

            // Sao lưu dữ liệu
            //btSaoLuu.Enabled = duocCap;

            // Phục hồi dữ liệu
            //btPhucHoi.Enabled = duocCap;
        }

        private void btSuDungVe_ItemClick(object sender, ItemClickEventArgs e)
        {
            xtraUserControl11.Visible = false;

        }

        // Sao lưu cơ sở dữ liệu
        private void btSaoLuu_ItemClick(object sender, ItemClickEventArgs e)
        {
            SaveFileDialog saveFileDialogObj = new SaveFileDialog();
            saveFileDialogObj.Filter = "SQL Server 2005 Back up file|*.bak";
            saveFileDialogObj.Title = "Sao lưu cơ sở dữ liệu";

            try
            {
                if (saveFileDialogObj.ShowDialog() == DialogResult.OK)
                {
                    Cursor.Current = Cursors.WaitCursor;

                    if (File.Exists(saveFileDialogObj.FileName))
                    {
                        File.Delete(saveFileDialogObj.FileName);
                    }

                    SQLServerUtility.SaoLuuCoSoDuLieu(SystemInfo.pub_DatabaseName, saveFileDialogObj.FileName);
                }
            }
            catch (Exception)
            {

            }
            finally
            {
                Cursor.Current = Cursors.Default;
            }
        }

        // Phục hồi cơ sở dữ liệu
        private void btPhucHoi_ItemClick(object sender, ItemClickEventArgs e)
        {
            OpenFileDialog openFileDialogObj = new OpenFileDialog();
            openFileDialogObj.Filter = "Back up file|*.bak";
            openFileDialogObj.Title = "Phục hồi cơ sở dữ liệu";

            try
            {
                if (openFileDialogObj.ShowDialog() == DialogResult.OK)
                {
                    Cursor.Current = Cursors.WaitCursor;
                    SQLServerUtility.PhucHoiCoSoDuLieu(SystemInfo.pub_DatabaseName, openFileDialogObj.FileName);

                    XtraMessageBox.Show("Chương trình sẽ tự tắt để cập nhật dữ liệu. Xin vui lòng mở lại chương trình sau.", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    Close();
                }
            }
            catch (Exception)
            {

            }
            finally
            {
                Cursor.Current = Cursors.Default;
            }
        }

        // Báo cáo tình hình sử dụng vé
        private void btBaoCaoTinhHinhSuDungVe_ItemClick(object sender, ItemClickEventArgs e)
        {
            xtraUserControl11.Visible = false;

        }

        // Nút tìm kiếm
        private void btTimKiem_ItemClick(object sender, ItemClickEventArgs e)
        {
            xtraUserControl11.Visible = false;

          
        }

        // Báo cáo công tác thu phí theo tháng
        private void btBaoCaoCongTacThuPhiVeSinhTheoThang_ItemClick(object sender, ItemClickEventArgs e)
        {
            xtraUserControl11.Visible = false;

        
        }

        private void btDoanhThu_ItemClick(object sender, ItemClickEventArgs e)
        {
            xtraUserControl11.Visible = false;

         
        }

        private void barButtonItem1_ItemClick(object sender, ItemClickEventArgs e)
        {
            xtraUserControl11.Visible = false;

           

        }

        private void barButtonItem6_ItemClick(object sender, ItemClickEventArgs e)
        {
           //System.Diagnostics.Process.Start("http://www.csp.vn");
            frmContact frm = new frmContact();
            frm.ShowDialog();
        }

        private void barButtonItem5_ItemClick(object sender, ItemClickEventArgs e)
        {
            //System.Diagnostics.Process.Start("HDSD_ThuPhi_CSP.pdf");
        }

        // Báo cáo danh sách khách hàng không đóng phí theo Quyết định 02/2011/QĐ-UBND
        private void btDanhSachKhachHangKhongDongPhiTheoQuyetDinh02_ItemClick(object sender, ItemClickEventArgs e)
        {
            xtraUserControl11.Visible = false;

         
        }

        private void btDSKHBienDong_ItemClick(object sender, ItemClickEventArgs e)
        {
            xtraUserControl11.Visible = false;

          
        }

        private void btDoiChieu_ItemClick(object sender, ItemClickEventArgs e)
        {
           
        }

        private void barButtonItem2_ItemClick(object sender, ItemClickEventArgs e)
        {
            xtraUserControl11.Visible = false;

           
        }


        // Sự kiện nhấn nút thu phí
        private void btThuPhi_ItemClick(object sender, ItemClickEventArgs e)
        {

        }

        private void btnBaoCaoTongHop_ItemClick(object sender, ItemClickEventArgs e)
        {
            xtraUserControl11.Visible = false;

            if (frmBaoCaoHoaDonTheoNgayObj != null)
            {
                if (frmBaoCaoHoaDonTheoNgayObj.IsDisposed)
                {
                    frmBaoCaoHoaDonTheoNgayObj = new FrmBaoCaoHoaDonTheoNgay();
                }
                else
                {
                    frmBaoCaoHoaDonTheoNgayObj.Activate();
                }
            }
            else
            {
                frmBaoCaoHoaDonTheoNgayObj = new FrmBaoCaoHoaDonTheoNgay();
            }

            frmBaoCaoHoaDonTheoNgayObj.MdiParent = this;
            frmBaoCaoHoaDonTheoNgayObj.Show();
        }

        private void btnHoadonGTGT_ItemClick(object sender, ItemClickEventArgs e)
        {
            xtraUserControl11.Visible = false;

            if (frmHoaDonObj != null)
            {
                if (frmHoaDonObj.IsDisposed)
                {
                    frmHoaDonObj = new frmHoaDon();
                }
                else
                {
                    frmHoaDonObj.Activate();
                }
            }
            else
            {
                frmHoaDonObj = new frmHoaDon();
            }

            frmHoaDonObj.MdiParent = this;
            frmHoaDonObj.Show();
        }

        private void btnDanhMucSanPham_ItemClick(object sender, ItemClickEventArgs e)
        {
            xtraUserControl11.Visible = false;

            if (frmSanPhamObj != null)
            {
                if (frmSanPhamObj.IsDisposed)
                {
                    frmSanPhamObj = new frmSanPham();
                }
                else
                {
                    frmSanPhamObj.Activate();
                }
            }
            else
            {
                frmSanPhamObj = new frmSanPham();
            }

            frmSanPhamObj.MdiParent = this;
            frmSanPhamObj.Show();
        }
        //form khach hang
        frmKhachHang frmKHObj;
        

        private void btnKhachHang_ItemClick(object sender, ItemClickEventArgs e)
        {
            xtraUserControl11.Visible = false;

            if (frmKHObj != null)
            {
                if (frmKHObj.IsDisposed)
                {
                    frmKHObj = new frmKhachHang();
                }
                else
                {
                    frmKHObj.Activate();
                }
            }
            else
            {
                frmKHObj = new frmKhachHang();
            }

            frmKHObj.MdiParent = this;
            frmKHObj.Show();
        }

     
    }   
}
